Traditionally, scripting languages such as JavaScript have been used to write typically short scripts that are executed by interpreting the script at runtime, e.g., using an interpreter, runtime environment, and/or other software entity. An example of such a typical configuration is shown in FIG. 1, specifically JavaScript 102 being executed at runtime by an interpreter 104 which interprets the JavaScript instructions and provides corresponding machine code instructions to central processing unit 106. By contrast, in traditional compiled programming languages, source code typically is compiled into machine code prior to runtime. Machine code comprises very low level instructions that are executable directly by a processor, e.g., compiled code 120 shown being provided directly to CPU 124 in FIG. 1, with the result that typically source code that has been compiled to machine code executes on a processor more quickly than equivalent interpreted (e.g., JavaScript) code that requires an interpreter to generate at runtime machine code executable by the processor. More recently, scripts and other code written in interpreted languages such as JavaScript have been precompiled to machine code executable directly by a processor, e.g., pre-compiled JavaScript (i.e., machine code generated prior to runtime based on JavaScript) 140 shown in FIG. 1 as being provided to CPU 144 for execution at runtime.